]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
St: Fix fade effect
authorCarlos Soriano <carlos.soriano89@gmail.com>
Tue, 17 Sep 2013 17:41:02 +0000 (19:41 +0200)
committerCarlos Soriano <carlos.soriano89@gmail.com>
Wed, 18 Sep 2013 18:01:49 +0000 (20:01 +0200)
Commit 4095a58eb9a2921c178b30c56d1fbe7662c2778a introduced a
regression, since we have to take into account four cases,
top, bottom, right, and left, and that can't be merged into
two like that commit did.
So fix it to make fade effect works again.

https://bugzilla.gnome.org/show_bug.cgi?id=708256

src/st/st-scroll-view-fade.c
src/st/st-scroll-view-fade.glsl

index 9f267c3b662c7ef4d6a1e049132f3332a3c296f6..ded8efb2a730c8b2dc680bc3dce0533a03a08f6d 100644 (file)
@@ -142,11 +142,13 @@ st_scroll_view_fade_paint_target (ClutterOffscreenEffect *effect)
 
   st_adjustment_get_values (self->vadjustment, &value, &lower, &upper, NULL, NULL, &page_size);
   value = (value - lower) / (upper - page_size - lower);
-  clutter_shader_effect_set_uniform (shader, "fade_edges_v", G_TYPE_INT, 1, self->fade_edges ? value >= 0.0 : value > 0.0);
+  clutter_shader_effect_set_uniform (shader, "fade_edges_top", G_TYPE_INT, 1, self->fade_edges ? value >= 0.0 : value > 0.0);
+  clutter_shader_effect_set_uniform (shader, "fade_edges_bottom", G_TYPE_INT, 1, self->fade_edges ? value <= 1.0 : value < 1.0);
 
   st_adjustment_get_values (self->hadjustment, &value, &lower, &upper, NULL, NULL, &page_size);
   value = (value - lower) / (upper - page_size - lower);
-  clutter_shader_effect_set_uniform (shader, "fade_edges_h", G_TYPE_INT, 1, self->fade_edges ? value >= 0.0 : value > 0.0);
+  clutter_shader_effect_set_uniform (shader, "fade_edges_left", G_TYPE_INT, 1, self->fade_edges ? value >= 0.0 : value > 0.0);
+  clutter_shader_effect_set_uniform (shader, "fade_edges_right", G_TYPE_INT, 1, self->fade_edges ? value <= 1.0 : value < 1.0);
 
   clutter_shader_effect_set_uniform (shader, "vfade_offset", G_TYPE_FLOAT, 1, self->vfade_offset);
   clutter_shader_effect_set_uniform (shader, "hfade_offset", G_TYPE_FLOAT, 1, self->hfade_offset);
index 23881fb978fe13b600632d41700b05941c791e44..9180aa18438ad96a4415dd0d4b4f3ae6163b6648 100644 (file)
@@ -22,8 +22,10 @@ uniform float height;
 uniform float width;
 uniform float vfade_offset;
 uniform float hfade_offset;
-uniform bool  fade_edges_h;
-uniform bool  fade_edges_v;
+uniform bool  fade_edges_top;
+uniform bool  fade_edges_right;
+uniform bool  fade_edges_bottom;
+uniform bool  fade_edges_left;
 
 uniform vec2 fade_area_topleft;
 uniform vec2 fade_area_bottomright;
@@ -44,10 +46,10 @@ void main ()
         float ratio = 1.0;
         float fade_bottom_start = fade_area_bottomright[1] - vfade_offset;
         float fade_right_start = fade_area_bottomright[0] - hfade_offset;
-        bool fade_top = y < vfade_offset && fade_edges_v;
-        bool fade_bottom = y > fade_bottom_start && fade_edges_v;
-        bool fade_left = x < hfade_offset && fade_edges_h;
-        bool fade_right = x > fade_right_start && fade_edges_h;
+        bool fade_top = y < vfade_offset && fade_edges_top;
+        bool fade_bottom = y > fade_bottom_start && fade_edges_bottom;
+        bool fade_left = x < hfade_offset && fade_edges_left;
+        bool fade_right = x > fade_right_start && fade_edges_right;
 
         float vfade_scale = height / vfade_offset;
         if (fade_top) {